import Axios from 'axios'
// import { router } from '../main'
// import util from '../util/util'
import { ElMessage } from 'element-plus'
Axios.defaults.timeout = 60000;// 响应时间
// Axios.defaults.baseURL = process.env.VUE_APP_APIURL;

Axios.interceptors.request.use((config: any) => {
  config.headers['Content-Type'] = 'application/json;charset=UTF-8';
  // window.combineHeader(config.headers)
  return config;
}, (error: any) => {
  return Promise.reject(error);
});

Axios.interceptors.response.use((response: any) => {
  return response;
}, (error: any) => {
  return Promise.reject(error);
});

function toLogin() {
  // let href = process.env.VUE_APP_UAT + encodeURIComponent(location.href) + '&response_type=code&state=123'
  // location.href = href
}

/**
 * 公共请求入口
 * @param param 'object'
 * @param url   'string'
 * @param type  'get || post'
 * @returns {Promise}
 */
const commonPromise = ({ data, params, url, method = 'get' }: any) => {
  return new Promise((resolve, reject) => {
    Axios({ url, method, data, params }).then((res: any) => {
      // debugger

      if (res.status === 200) { // 成功
        resolve(res.data)
        /*
        if (res.data.code === 0) {
          resolve(res.data)
        } else if (res.data.code === 403 || res.data.code === 1004) {
          // util.clearStorage();
          res.data.msg && ElMessage.error(res.data.msg);
          // router.push('/login');
          toLogin()
          reject(new Error('用户状态变更'));
        } else {
          console.log(res)
          ElMessage.error('res.data.msg')
          reject(res.data.msg)
        }
        */
      } else if (res.status === 403) { // 用户状态变更
        // util.clearStorage();
        res.data.msg && ElMessage.error(res.data.msg);
        // router.push('/login');
        toLogin()
        reject(new Error('用户状态变更'));
      } else {
        res.data.msg && ElMessage.error(res.data.msg);
        reject(new Error('系统出错'));
      }
    }).catch((err: any) => {
      // console.log(err)
      ElMessage.error('系统出错');
      reject(err.data.msg);
    });
  })
}
export default commonPromise